# -*- coding:utf-8 -*-
"""
@name : lianxi01
@author : hj
@projectname: CJH
"""
# 1、输入数字n，输出n天前的日期（time或者datatime模块）
# import datetime
# n = input("请输入一个数字：")
# day = datetime.date.today() + datetime.timedelta(-int(n))
# print(f"{n}天前的日期为：{day}")


# 2、输出指定文件夹下有哪些文件或文件夹（实现ls命令， os）
# import os
# path = input("请输入指定文件夹:")
# if os.path.exists():
#     #os.listdir(path)
#     print(os.system(f"ls {path}"))
# else:
#     print("文件夹路径不存在")

# 3、列表去重，并且从小到大排序
# lst = [11, 34, 56, 33, 11, 23, 34, 54, 33, 67, 97, 76]
# s = set(lst)
# lst2=list(s)
# lst2.sort()
# print(lst2)


# 4、如何在一个函数内部修改全局变量
#     将变量申明为global

# 5、如何跨模块共享全局变量
# settings.py   专门为全局变量定义一个“全局变量管理模块”

# 6、python的基本数据类型有哪些？
#      整数、浮点数、复数

# 7、python中生成随机整数（1-10），随机小数（1-10），随机小数（0-1）的方法
# import random
#
# print(random.randint(1, 10))
# print(random.uniform(1, 10))
# print(random.random())

# 8、python中哪些是可变数据类型，哪些是不可变数据类型
# 不可变数据（3 个）：Number（数字）、String（字符串）、Tuple（元组）；
# 可变数据（3 个）：List（列表）、Dictionary（字典）、Set（集合）。

# 9、a+=1与a=a+1有什么区别
# 对于可变对象，a+=1 直接在原内存地址上操作
#            a=a+1  会开辟新的内存进行操作

# 10、什么是pep8？说出5点它的标准
#   pep8是一个编程规范，内容就是一些关于如何让你的程序更具可读性的建议
#   1.缩进。4个空格的缩进（编辑器都可以完成此功能），不使用Tap，更不能混合使用Tap和空格
#   2.每行最大长度79，换行可以使用反斜杠，最好使用圆括号。换行点要在操作符的后边敲回车。
#   3.类和top-level函数定义之间空两行；类中的方法定义之间空一行；函数内逻辑无关段落之间空一行；其他地方尽量不要再空行。
#   4.模块导入的顺序：按标准、三方和自己编写顺序依次导入，之间空一行。
#   5.不要在一句import中多个库，比如import os, sys不推荐
#   6.避免不必要的空格
#   7.注释必须要有
#   8.函数命名要遵循规范
#   9.尽可能使用‘is’‘is not’取代‘==’，比如if x is not None 要优于if x
# a = 10
# (a + b) = 20
# print(a, b, c)

# 11、给定一个字符串，找出字符串第一个重复的字符
# str1 = "erbgfoeurbfoaiuebfonqwjfn"
# str2 = ""
# for i in str1:
#     if i not in str2:
#         str2 += i
#     else:
#         print(f"{i}是第一个重复的字符串")
#         break


# 12、简述深拷贝与浅拷贝
# 浅拷贝只会拷贝第一层的地址，可能会造成修改拷贝之后的值,深拷贝则不会
# 容器里面包含一个可变的容器，才会有深拷贝

# 13、简述python内存机制
# 以引用计数为主，分代回收、标记清除为辅的垃圾回收方式,以及对小整型进行缓存和简单字符驻留的内存池机制

# 14、使用python实现冒泡排序，快速排序
# def bubblesort(lst):
#     for i in range(len(lst)-1):
#         for j in range(len(lst) - 1):
#             if lst[j] > lst[j + 1]:
#                 lst[j], lst[j + 1] = lst[j + 1], lst[j]
#     print(lst)
#
#
# testArr = [12, 234, 11, 24, 45, 56, 74, 43, 33]
# bubblesort(testArr)

# 15、验证一个字符串是否属于回文（从左到右，从右到左都是一样）
# str1 = "abcdefedcba"
# lst = list(str1)
# l = len(str1)
# for i in range(l):
#     if lst[i] is not lst[-(i + 1)]:
#         print(f"{str1}不是回文")
#         break
#     elif i == (l - 1) and lst[i] is lst[-(i + 1)]:
#         print(f"{str1}是回文")
